/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package algoritmosprobab;

/**
 *
 * @author nathamg
 */
public class AlgoritmosProbab {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
       MillerRabin objMont=new MillerRabin();
       GeneradorStandardMinimo objGenerador = new GeneradorStandardMinimo((int)System.currentTimeMillis());
       boolean respMiller;
       int primo, candidato;
       
       //respMiller=objMont.millerRabin(1000003);
       //System.out.println("El numero es? "+respMiller);
       //primo=objMont.nextPrimo(1000000);
       //System.out.println("El número primo:"+primo);
       //System.out.println("El que sigue: "+objMont.nextPrimo(primo));
       
       //Para punto 1, Monte Carlo
       /*for(int i=0; i<10; i++){
           candidato=objGenerador.nextInt();
           System.out.println("El número candidato a primo es: "+candidato);
           
           respMiller=objMont.millerRabin(candidato);
           System.out.println("La prueba para el candidato resulta: "+respMiller);
        }*/
       
       //Para punto 2, Monte Carlo
       primo=objMont.nextPrimo(1367890);
       System.out.println("El número primo grande encontrado fué: "+primo);
       primo=objMont.nextPrimo(1906653);
       System.out.println("El número primo grande encontrado fué: "+primo);
       
       
//       int contIter = 0;
//       int topeIter = Integer.MAX_VALUE;
//       int nSimulaciones = 100;
//       boolean exitoVegas;
//       long tiempoInicio;
//       long tiempoFin;
//       long tiempo;
//       NReinas_Vegas objVegas;
//       System.out.println("n_exp, t(ns), ensays, exito?");
//       objVegas = new NReinas_Vegas(8);
////       int i = 0;
//       
//       for(int i=0; i<nSimulaciones ;i++){
//            tiempoInicio = System.nanoTime();
//            do{
//                exitoVegas = objVegas.lasVegas();
//                contIter++;
//            }while(!exitoVegas && contIter < topeIter);
//
//            tiempoFin = System.nanoTime();
//
//            tiempo = tiempoFin - tiempoInicio;
//            
//            System.out.println(i+","+tiempo+","+contIter+","+exitoVegas);
//            contIter = 0;
//            exitoVegas = false;
//       }
//       objVegas.mostrarSolucion();
//       
    }
}
